<?php
declare (strict_types = 1);

namespace app\controller;

use think\Request;
use EasyWeChat\Factory;
use think\facade\Log;
use think\facade\Session;

class Wechat
{
    public function __construct()
    {
        $config = config('wechat');
        $this->app = Factory::officialAccount($config);
    }   

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function oauth_callback($return_url)
    {
        $oauth = $this->app->oauth;

        // 获取 OAuth 授权结果用户信息
        $user = $oauth->user();
        Log::record('oauth_callback:'.json_encode($user));
        // echo json_encode($user);
        // $user 可以用的方法:
        // $user->getId();  // 对应微信的 OPENID
        // $user->getNickname(); // 对应微信的 nickname
        // $user->getName(); // 对应微信的 nickname
        // $user->getAvatar(); // 头像网址
        // $user->getOriginal(); // 原始API返回的结果
        // $user->getToken(); // access_token， 比如用于地址共享时使用
        Session::set('openid', $user->getId());
        Session::set('wxNickname', $user->getNickname());
        if(!$return_url) {
            $return_url = Session::get('wx_oauth_return_url');
            if(!$return_url) {
                $return_url = "/index";
            }
        }
        
        return redirect($return_url);
    }

    public function testNotify(){
        $this->app->template_message->send([
            'touser' => 'oePj5t0fceEZHaVpQMGc801qb1eo',
            'template_id' => 'fS0PU76bOvlCUqm4jMVTRYZ1hGi64q-3mChiWEqpzzA',
            'url' => 'https://jd.0xaa.cn/index/data?id=123',
             'data' => [
                'Account' => 'VALUE'
            ]
        ]);
    }

    public function setMenu(){
        $buttons = [
            [
                "type" => "view",
                "name" => "我的账号",
                "url"  => "https://jd.0xaa.cn/index/my"
            ]
        ];
       $result = $this->app->menu->create($buttons);
       return json($result);
    }
}
